package 补充.日期操作;

import java.time.*;
import java.util.Date;

// 在之前的date、Calendar类都是不安全的
public class DateTimeExample {
    public static void main(String[] args) {
        DateTimeExample example = new DateTimeExample();
        example.testLocalDateTime();
    }

    public void testLocalDateTime() {
        // 获取当前的 LocalDateTime 对象
        java.time.LocalDateTime localDateTime = java.time.LocalDateTime.now();
        System.out.println("当前时间：" + localDateTime);

        // 从 LocalDateTime 中提取 LocalDate
        LocalDate date1 = localDateTime.toLocalDate();
        System.out.println("date1:" + date1);

        // 获取年、月、日、时、分、秒
        int year = localDateTime.getYear(); // 年
        Month month = localDateTime.getMonth(); // 月
        int day = localDateTime.getDayOfMonth(); // 日
        int hour = localDateTime.getHour(); // 时
        int minutes = localDateTime.getMinute(); // 分钟
        int seconds = localDateTime.getSecond(); // 秒

        System.out.println("年:" + year);
        System.out.println("月:" + month);
        System.out.println("日:" + day);
        System.out.println("时:" + hour);
        System.out.println("分钟:" + minutes);
        System.out.println("秒:" + seconds);

        // 修改日期为 2024 年 10 日
        java.time.LocalDateTime date2 = localDateTime.withDayOfMonth(10).withYear(2024);
        System.out.println("date2:" + date2);

        // 创建一个指定日期的 LocalDate 对象
        LocalDate date3 = LocalDate.of(2024, Month.DECEMBER, 12);
        System.out.println("date3:" + date3);

        // 创建一个指定时间的 LocalTime 对象
        LocalTime date4 = LocalTime.of(23, 59, 59);
        System.out.println("date4:" + date4);

        // 从字符串解析出 LocalTime 对象
        LocalTime date5 = LocalTime.parse("23:59:59");
        System.out.println("date5:" + date5);
    }
}